package com.yuw.control;

import com.alibaba.fastjson.JSON;
import com.mysql.cj.xdevapi.JsonArray;
import com.yuw.bean.UserInfoBean;
import com.yuw.modal.UserModel;
import com.yuw.utils.MyUtils;
import org.apache.commons.lang3.StringUtils;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

@WebServlet(name = "UserInfoAjaxQueryServlet", value = "/UserInfoAjaxQueryServlet")
public class UserInfoAjaxQueryServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 1 获取表单数据
        UserInfoBean userInfoBean = MyUtils.getNewInstance(UserInfoBean.class);
        userInfoBean.setUserName(request.getParameter("userName"));

        userInfoBean.setUserTel(request.getParameter("userTel"));
        // 把从前台页面获取的表单数据的值转换为 日期 Date 类型
        String strRegiseterDate = request.getParameter("userRegisteDate");
        // 把前台页面传递的string类型转换为日期的date类型
        if (StringUtils.isNotEmpty(strRegiseterDate)) {
            userInfoBean.setUserRegisteDate(MyUtils.convertString2Date(strRegiseterDate, "yyyy-MM-dd"));
        }
        // 查询条件 -- 截止日期
        String strRegiseterDate2 = request.getParameter("userRegisteDate2");
        if (StringUtils.isNotEmpty(strRegiseterDate2)) {
            userInfoBean.setUserRegisteDate2(MyUtils.convertString2Date(strRegiseterDate2, "yyyy-MM-dd"));
        }

        // 2 调用model层进行业务逻辑查询处理
        // 调用Model层进行查询操作，将用户数据查询出来，保存到session中
        List<UserInfoBean> lstUsers = MyUtils.getNewInstance(UserModel.class).queryUserInfoByParams(userInfoBean);

        // 将查询结果集转换为json字符串，发送到前端浏览器
        String strJsonListUsers = JSON.toJSONStringWithDateFormat(lstUsers, "yyyy-MM-dd HH:mm:ss");

        // 使用printwriter发送信息到网络，影响客户端请求【ajax引擎】
        // 用的是数据流，和socket通信是一样的原理
        PrintWriter printWriter = response.getWriter();
        printWriter.write(strJsonListUsers);
        // 清空发送的数据流
        printWriter.flush();

    }



}
